iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 10
1

go 的類別

在前一篇文章跟大家分享 go 的介面,但是在其中有些內容尚未跟大家說明因為要說明該內容有點多,所以另闢一篇文章專門說明那東西,所以這篇文章要說明的就是 go 的類別。

本文同步放置於此

go 類別的宣告及使用

類別是什麼呢,簡單說明就是 go 的自訂義型別,為什麼筆者會稱為類別呢,因為類別的關鍵字是type,接下來就跟大家分享這篇文章的主要內容是 go 的類別,說明的內容分為宣告以及使用,以下分為兩個段落個別介紹。

類別的宣告

宣告類別的方式就如同其它語言的繼承一樣,只不過 go 語言沒有繼承所以筆者不用這個詞來說明他,接下來大家看看如何宣告一個自訂義的型別

type MyFloat float64

這宣告一個自定義型別 MyFloat 擁有 float64 的屬性,簡單講就是把自定義的這個型別當成 float64 來使用。當然我們的自定義型別不能這麼單純,所以接下來要介紹複雜的自定義型別。

結構的宣告

接下來要說明的是複雜的型別 struct ,他的宣告方式請看下列說明。

type Vertex struct {
	X int
	Y int
}

上面例子跟大家說明複雜的結果要用 struct 這關鍵字,並在 {} 內宣告結構所包含的內容,在這例子裡是兩個 int 分別為X、Y,接下來要說明如何使用這自定義的型別。

類別的使用

上一個段落跟大家分享如何宣告一個複雜型別,接下來跟大家分享如何使用這個自定義型別,請大家看一下下列例子

package main

import "fmt"

type Vertex struct {
	X int
	Y int
}

func main() {
    p := Vertex{1,1}
	pos(p)
}

func pos(p Vertex){
    fmt.Print("X:",p.X,", Y:",p.Y)
}

這裡我們生成一個名為 p 的自定義複雜型別,並給予其各ㄧ個整數 1,然後再方法內透過 . 來取得該屬性的值。

結論

介紹自定義型別先到這裡告一段落,但是 go 的類別並不是這麼簡單而已,接下來要更進一步介紹 * 這東西。


上一篇
介面的宣告及使用
下一篇
指標
系列文
Iris這個在go語言上地表最快的網頁框架30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言